package com.zishi.util;

import lombok.extern.log4j.Log4j;
import org.apache.logging.log4j.util.Strings;
import org.apache.tomcat.util.bcel.Const;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;


/**
 * @author TP
 * @version 1.0
 * @date 2022/5/9/0009 9:25
 */
@Log4j
public class FileUploadUtil {

    /**
     * 生成新的文件名
     * @param fileName 源文件名
     * @return
     */
    public static String getNewFileName(String fileName){
        return UUID.randomUUID() + fileName.substring(fileName.lastIndexOf("."));
    }


    /**
     *
     * @param file 文件
     * @param openid  用户openid
     * @return
     */
    public static String upload(MultipartFile file, String openid){

//        if (file.isEmpty()) {
//            System.out.println("文件为空");
//            return -1 + "";
//        }

        //获取文件名
        String originalFilename = file.getOriginalFilename();
        System.out.println("文件名：" + originalFilename);
        if (Strings.isEmpty(originalFilename)) {
            log.error("文件名为空");
            return null;
        }

        String newFileName = openid +'/'+ FileUploadUtil.getNewFileName(originalFilename);

        // 生成新的完整文件名
        String realPath = ConstUtil.IMAGE_PATH +  "/" +newFileName;

        File dest = new File(realPath);

        //判断文件父目录是否存在
        if(!dest.getParentFile().exists()){
            dest.getParentFile().mkdirs();
        }

        try {
            //保存文件
            file.transferTo(dest);
            System.out.println(newFileName+"==2222222");
            return newFileName;
        } catch (IOException e) {
            log.error(e);
            return null;
        }
    }
}
